//package com.moli.iov.admin.component;
//
//import java.io.IOException;
//import javax.annotation.Resource;
//import javax.websocket.OnClose;
//import javax.websocket.OnError;
//import javax.websocket.OnMessage;
//import javax.websocket.OnOpen;
//import javax.websocket.Session;
//import javax.websocket.server.PathParam;
//import javax.websocket.server.ServerEndpoint;
//
//import com.moli.iov.admin.websocket.handle.WebSocketBizHandler;
//import com.moli.iov.util.SpringContextUtils;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.stereotype.Component;
//
///**
// * <p>
// *
// * </p>
// *
// * @author zql
// * @since 2019/10/15 11:00
// */
//@Slf4j
//@ServerEndpoint("/socketjs")
//@Component
//public class WebSocketServerHandler {
//
//  /**
//   * concurrent包的线程安全Set，用来存放每个客户端对应的MyWebSocket对象。
//   */
////  private static CopyOnWriteArraySet<WebSocketServerHandler> webSocketSet = new CopyOnWriteArraySet<WebSocketServerHandler>();
//
//  /**
//   * 与某个客户端的连接会话，需要通过它来给客户端发送数据
//   */
////  private Session session;
//
//  @Resource
//  WebSocketBizHandler webSocketBizHandler;
//
//  /**
//   * 接收sid
//   */
//  private String sid="";
//
//
//  /**
//   * 连接建立成功调用的方法
//   * @param session
//   * @param sid
//   */
//  @OnOpen
//  public void onOpen(Session session) {
////    this.session = session;
//    this.sid=sid;
////    webSocketSet.add(this);
//  }
//
//  /**
//   * 连接关闭调用的方法
//   */
//  @OnClose
//  public void onClose(Session session) {
////    webSocketSet.remove(this);
//    log.info("窗口：{} 关闭连接", sid);
//  }
//
//  /**
//   * 收到客户端消息后调用的方法
//   * @param message  客户端发送过来的消息
//   * @param session
//   */
//  @OnMessage
//  public void onMessage(String message, Session session) {
//    WebSocketBizHandler webSocketBizHandler = SpringContextUtils.getBean("webSocketBizHandler");
//    webSocketBizHandler.handle(message,session);
//  }
//
////  /**
////   * 服务器主动推送
////   * @param message
////   * @throws IOException
////   */
////  public void sendMessage(String message) throws IOException {
////    this.session.getBasicRemote().sendText(message);
////  }
////
////  /**
////   * 推送消息
////   * @param message
////   * @param sid
////   * @throws IOException
////   */
////  public void sendMessage(String sid, String message) throws IOException {
////    log.info("推送消息到窗口"+sid+"，推送内容:"+message);
////    for (WebSocketServerHandler item : webSocketSet) {
////      try {
////        if(item.sid.equals(sid)) {
////          item.sendMessage(message);
////        }
////      } catch (IOException e) {
////        continue;
////      }
////    }
////  }
//
//  /**
//   *
//   * @param session
//   * @param error
//   */
//  @OnError
//  public void onError(Session session, Throwable error) throws IOException {
//    log.error("websocket发生异常 ", error);
//    session.close();
//  }
//}
